Specification and Runtime Verification of API Constraints on Interacting Objects
نویسندگان
چکیده
Most applications need to invoke some Application Programming Interfaces (APIs), e.g. JDK (Java Development Kit) API. When invoking those APIs, applications must follow some API constraints. Violation of these constraints will lead to some severe program defects. To detect this kind of defects, lots of static and dynamic approaches are explored, using formally described API constraints. While most existing approaches explore API constraints on a single object, this paper focuses on API constraints on interacting objects (COIOs). We proposed a novel specification language LACOIO (Language for API Constraint on Interacting Objects) which can cover all state-ofthe-art reported API COIOs. We implemented a LACOIO compiler which can automatically generate monitoring code for runtime verification from API constraints that are specified using LACOIO and implemented the runtime verification framework. We evaluated the proposed approach by comparing it with Tracematch – a popular constraint specification language. KeywordsRuntime verification; runtime monitoring; specification; program analysis.
منابع مشابه
MOPBox: A Library Approach to Runtime Verification
In this work we propose MOPBox, a library-based approach to runtime verification. MOPBox is a Java library for defining and evaluating parametric runtime monitors. A user can define monitors through a simple set of API calls. Once a monitor is defined, it is ready to accept events. Events can originate from AspectJ aspects or from other sources, and they can be parametric, i.e., can contain var...
متن کاملParallelized Runtime Verification of First-order LTL Specifications
Runtime verification is an effective automated method for specification-based offline testing and analysis as well as online monitoring of complex systems. The specification language is often a variant of regular expressions or a popular temporal logic, such as Ltl. This paper presents a novel and efficient parallel algorithm for verifying a highly expressive fragment of first-order Ltl specifi...
متن کاملFlexible and Extensible Runtime Verification for Java
Runtime verification validates the correctness of a program’s execution trace. Much work has been done on improving the expressiveness and efficiency of runtime verification. However, current approaches require static deployment of the verification logic and are often restricted to a limited set of events that can be captured and analyzed, hindering the adoption of runtime verification in produ...
متن کاملAccelerated Runtime Verification of LTL Specifications with Counting Semantics
Runtime verification is an effective automated method for specification-based offline testing and analysis as well as online monitoring of complex systems. The specification language is often a variant of regular expressions or a popular temporal logic, such as Ltl. This paper presents a novel and efficient parallel algorithm for verifying a more expressive version of Ltl specifications that in...
متن کاملAutomatically Generated Runtime Checks for Design-Level Constraints
In recent years, componentand service-orientation has gained importance as the new paradigm in software engineering, and it has introduced the challenge of dynamic component look-up and binding into the validation and verification process. This introduces a new class of inherently dynamic properties that have to be verified when the system is running in its target environment rather than at dev...
متن کامل